/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package Br.Com.Cds.Academia.View;

import Br.Com.Cds.Academia.Banco.BancoBean;
import Br.Com.Cds.Academia.Banco.BancoControl;
import Br.Com.Cds.Academia.DAO.AcessoMySQL;
import Br.Com.Cds.Academia.Grupo.GrupoBean;
import Br.Com.Cds.Academia.Grupo.GrupoControl;
import java.awt.Dimension;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.List;
import javax.swing.JOptionPane;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import javax.swing.SwingConstants;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.JTableHeader;
import javax.swing.table.TableColumnModel;

/**
 *
 * @author Pedro
 */
public class TelaCadastroBanco extends javax.swing.JFrame {

    DefaultTableModel tmBancos = new DefaultTableModel(null,new String[]{"Banco","Conta"}); // Cria um modelo de tabela, deverá ir nas propriedades da JTable e mudar o nome do modelo para o mesmo nome do obejto criado.
    ListSelectionModel lsmBancos; // Tem que criar para poder listar resultados na JTable.
    String tipoCadastro; // String para verificar a ação que deverá ser realizada ao clicar no botão salvar.
    List <BancoBean> Bancos; //Tem que criar para poder mostrar os valores do metódo de consulta.
    
    
    private void listarBancos(){ // Metódo que vai ser invoado ao clicar no botão PESQUISAR.

        BancoControl ban = new BancoControl();  // Cria um objeto da Classe GRUPOCONTROL, para podermos trabalhar com metódos que existem dentro da classe, lembrando que só serão enxergados os metódos do tipo PUBLIC.
        Bancos = ban.listarBanco("%" + TFpesquisabanco.getText().trim() + "%"); // Instancia a Classe GRUPOCONTROL e invoca o metódo LISTARGRUPOS da Classe GRUPOCONTROL, depois utiliza o valor que está no TFPESQUISAR, e passa como parametro de BUSCA.
        mostrarBancos(Bancos); //Pega os valores da consulta, atribui ao OBJETO GRUPO e passa ele como parametro para o metódo MOSTRARGRUPOS, onde será exibido o resultado da consulta. 

    }
    
    
    private void mostrarBancos(List<BancoBean> bancos){ //Metódo para listar o resultado da consulta.
        if ( bancos.size()==0){                         // Se a consulta não obter nenhum resultado vai exibir a mensagem abaixo.
            tmBancos.setRowCount(0);
            JOptionPane.showMessageDialog(this,"Registro Não Encontrado!","CDS ACADEMIA",JOptionPane.INFORMATION_MESSAGE);
        }else{                                         // Se a consulta retorna algum resultado será exibido abaixo.
            while(tmBancos.getRowCount() > 0){
                  tmBancos.removeRow(0);

            }
            String[] campos = new String[] { null,null}; // Cria um array para mostrar os resultados, a quantidade de NULL é definida pela quantidade de colunas na JTable.
            for (int i = 0;i < bancos.size(); i++){     // Enquanto houver resultado exiba na JTable.
                tmBancos.addRow(campos);                // Adciona o Array na tabela.
                tmBancos.setValueAt(bancos.get(i).getBanco(),i,0); // Determina qual o valor que vai aparecer em cada coluna da tabela, o numero da coluna é definida pelos numerores 0,1,etc ... a primeira coluna tem que ser no VALOR 0 !
                tmBancos.setValueAt(bancos.get(i).getConta(),i,1);  // Determina o valor da segunda coluna.
  
            }
        }

    }
    
    
    
    
     private void tbBancosLinhaSelecionada(JTable tb){     // Metódo para SETAR nos campos da tela os valores do registro selecionado.

        if(tb.getSelectedRow() != -1){         
            BTalterarcadastro.setEnabled(true);// Se houver alguma linha selecionada na JTable.
            TFnomebanco.setText(Bancos.get(tb.getSelectedRow()).getBanco());
            TFagencia.setText(Bancos.get(tb.getSelectedRow()).getAgencia());
            TFconta.setText(Bancos.get(tb.getSelectedRow()).getConta());// Pega o nome do GRUPO selecionado na tabela e coloca o NOME dele no CAMPO DE TEXTO.
            String pegaStatus = Bancos.get(tb.getSelectedRow()).getStatus(); // Pega o resultado da coluna STATUS.
            if(pegaStatus.equals("ATIVO")){                 // COMPARA A STRING REGISTRADO NO BANCO.
               JRBativobanco.setSelected(true);
               JRBinativobanco.setSelected(false);
            }else if(pegaStatus.equals("INATIVO")){
               JRBinativobanco.setSelected(true);
               JRBativobanco.setSelected(false);
            }

            BTalterarcadastro.setEnabled(true);     // Habilita o botão ALTERAR
            BTnovocadastro.setEnabled(true);  
            BTsalvarcadastro.setEnabled(false);// Desabilita o botão NOVO


       }else{ // Se não houver nenhuma linha selecionada, deixa os campos em branco.
          
            TFnomebanco.setText("");
            JRBativobanco.setSelected(false);
            JRBinativobanco.setSelected(false);
            BTalterarcadastro.setEnabled(false);

       }

    }
    
     private JTable getJTable() {        //Metódo para definir o tamanho das colunas na JTable.
     if (TBbanco == null) {
         TBbanco = new JTable(tmBancos);
         defineRenderers();
   }       return TBbanco;
 }
    
    private void defineRenderers() {
     DefaultTableCellRenderer rendererCentro = new DefaultTableCellRenderer();
     rendererCentro.setHorizontalAlignment(SwingConstants.CENTER);
     DefaultTableCellRenderer rendererDireita = new DefaultTableCellRenderer();
     rendererDireita.setHorizontalAlignment(SwingConstants.RIGHT);
     DefaultTableCellRenderer rendererEsquerda = new DefaultTableCellRenderer();
     rendererEsquerda.setHorizontalAlignment(SwingConstants.LEFT);

     JTableHeader header = TBbanco.getTableHeader();
     header.setPreferredSize(new Dimension(0, 35));
     TableColumnModel modeloDaColuna = TBbanco.getColumnModel();
     
    // Aqui se define se o texto vai ficar no meio ou nos cantos da coluna.
     
     modeloDaColuna.getColumn(0).setCellRenderer(rendererCentro); 
     modeloDaColuna.getColumn(1).setCellRenderer(rendererCentro);
     
      // Aqui se define o tamanho das colunas.
     
     modeloDaColuna.getColumn(0).setMaxWidth(500);
     modeloDaColuna.getColumn(1).setMaxWidth(500);
     
     
    }
    
    
    private void novoBanco(){ // Metodo para quando clicar no botão novo, habilitar e limpar os campos

      TFnomebanco.setText("");
      JRBativobanco.setSelected(false);
      JRBinativobanco.setSelected(false);
      TFagencia.setText("");
      TFconta.setText("");
      BTalterarcadastro.setEnabled(false);
      habilitarCampos();
      
     }
    
     private void limparCampos(){

      TFnomebanco.setText("");
      TFagencia.setText("");
      TFconta.setText("");
      JRBativobanco.setSelected(false);
      JRBinativobanco.setSelected(false);      

    }
    
     private boolean verificarCampos(){ // Verifica se o nome do Grupo foi digitado.

        if(!TFnomebanco.getText().trim().equals("")){
            return true;
        }
        JOptionPane.showMessageDialog(this,"INFORME O NOME DO BANCO !","CDS ACADEMIA",JOptionPane.WARNING_MESSAGE);
        return false;

    }
     
     private boolean verificaBancoCadastrado(){
         
            PreparedStatement pstm;
            ResultSet rs;
            String pegaNomeBanco = "SELECT BANCO FROM BANCO WHERE BANCO = ?";
            String resultBanco = "";
            
            try{
                AcessoMySQL mysql = new AcessoMySQL();
                pstm = (PreparedStatement) mysql.conectar().prepareStatement(pegaNomeBanco);
                String nomeBanco = TFnomebanco.getText().trim();
                pstm.setString(1,nomeBanco);
                rs = pstm.executeQuery();
                
                while (rs.next()){
                          
                resultBanco = rs.getString("BANCO");
                System.out.print(resultBanco);
                JOptionPane.showMessageDialog(null,"Já existe um Banco cadastrado com esse mesmo nome !","CDS ACADEMIA",JOptionPane.WARNING_MESSAGE);
                return false;
             }    
              
                
                
            }catch(Exception e){
             e.printStackTrace();
            }
        return true;
     }
    
    private void cadastraBanco(){ // Metodo para cadastrar o GRUPO

         if(verificaBancoCadastrado() ){ //Vefifica se o o campo NOME foi preenchido.

            BancoControl bc = new BancoControl();
            BancoBean bb = new BancoBean();

            bb.setBanco(TFnomebanco.getText().trim());
            bb.setAgencia(TFagencia.getText().trim()); 
            bb.setConta(TFconta.getText().trim()); // Pega valor no campo NOME.
            if(JRBativobanco.isSelected()){ //Vefifica qual a opção do STATUS que está marcada.
            bb.setStatus("ATIVO");
            }else if(JRBinativobanco.isSelected()){
            bb.setStatus("INATIVO");
            }else{
            JOptionPane.showMessageDialog(null,"INFORME O STATUS!","CDS ACADEMIA",JOptionPane.WARNING_MESSAGE);
            
            }

            bc.cadastraBanco(bb);
            limparCampos();
            BTnovocadastro.setEnabled(true);
            limpaTabela();
            TFpesquisabanco.setText("");
            JOptionPane.showMessageDialog(null,"BANCO CADASTRADO COM SUCESSO","MENSAGEM DO PROGRAMA",JOptionPane.INFORMATION_MESSAGE);
            desabilitarCampos();

         }
         
        }
    
    public void limpaTabela(){  
    DefaultTableModel tblRemove = (DefaultTableModel)TBbanco.getModel();  
      
    if (tblRemove.getRowCount() > 0){  
        for (int i=1;i<=tblRemove.getRowCount();i++){  
            tblRemove.removeRow(0);  
        }              
    }  
  
}  

    
    
    
    private void alteraBanco(){ // Metodo para alterar o GRUPO

         if(verificaBancoCadastrado() ){ //Vefifica se o o campo NOME foi preenchido.

            BancoControl bc = new BancoControl();
            BancoBean bb = new BancoBean();

            bb.setBanco(TFnomebanco.getText().trim());
            bb.setAgencia(TFagencia.getText().trim()); 
            bb.setConta(TFconta.getText().trim()); // Pega valor no campo NOME.
            bb.setIdbanco(Bancos.get(TBbanco.getSelectedRow()).getIdbanco()); // Aqui é onde ele pega o ID do registro selecionado para passar como criterio na hora de alterar o registro.
            if(JRBativobanco.isSelected()){
            bb.setStatus("ATIVO");
            }else if(JRBinativobanco.isSelected()){
            bb.setStatus("INATIVO");
            }else{
            JOptionPane.showMessageDialog(null,"INFORME O STATUS!","CDS ACADEMIA",JOptionPane.WARNING_MESSAGE);
            }

            bc.alterarBanco(bb);
            BTnovocadastro.setEnabled(true);
            limpaTabela();
            limparCampos();
            TFpesquisabanco.setText("");
            JOptionPane.showMessageDialog(null,"BANCO ALTERADO COM SUCESSO","MENSAGEM DO PROGRAMA",JOptionPane.INFORMATION_MESSAGE);
            desabilitarCampos();

         }
        }
    
    private void excluirBanco(){

        if(TBbanco.getSelectedRow() != -1){
         int resposta = JOptionPane.showConfirmDialog(this,"Excluir Registro Selecionado ?","CONFIRMAÇÂO",JOptionPane.YES_NO_OPTION);
            if(resposta == JOptionPane.YES_OPTION){
                BancoControl bc = new BancoControl();
                bc.excluirBanco(Bancos.get(TBbanco.getSelectedRow()).getIdbanco());
                limpaTabela();
                TFagencia.setText("");
                TFconta.setText("");
                TFnomebanco.setText("");
                TFpesquisabanco.setText("");
            }
        }
    }
    
    private void habilitarCampos(){

     TFnomebanco.setEditable(true);
     TFagencia.setEditable(true);
     TFconta.setEditable(true);
     JRBativobanco.setEnabled(true);
     JRBinativobanco.setEnabled(true);
   }

    private void desabilitarCampos(){

     TFnomebanco.setEditable(false);
     TFagencia.setEditable(false);
     TFconta.setEditable(false);
     JRBativobanco.setEnabled(false);
     JRBinativobanco.setEnabled(false);

  }

   
    
    
    /**
     * Creates new form TelaCadastroAluno
     */
    public TelaCadastroBanco() {
        initComponents();
        defineRenderers();
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        buttonGroup1 = new javax.swing.ButtonGroup();
        buttonGroup2 = new javax.swing.ButtonGroup();
        jTextField1 = new javax.swing.JTextField();
        jPanel5 = new javax.swing.JPanel();
        jScrollPane1 = new javax.swing.JScrollPane();
        jTable1 = new javax.swing.JTable();
        jToggleButton1 = new javax.swing.JToggleButton();
        jPanel1 = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();
        TFpesquisabanco = new javax.swing.JTextField();
        BTpesquisarbanco = new javax.swing.JButton();
        jLabel13 = new javax.swing.JLabel();
        jTabbedPane1 = new javax.swing.JTabbedPane();
        jPanel3 = new javax.swing.JPanel();
        TFnomebanco = new javax.swing.JTextField();
        jToolBar3 = new javax.swing.JToolBar();
        jPanel7 = new javax.swing.JPanel();
        JRBativobanco = new javax.swing.JRadioButton();
        JRBinativobanco = new javax.swing.JRadioButton();
        jLabel7 = new javax.swing.JLabel();
        jLabel8 = new javax.swing.JLabel();
        TFagencia = new javax.swing.JTextField();
        jLabel9 = new javax.swing.JLabel();
        TFconta = new javax.swing.JTextField();
        jToolBar1 = new javax.swing.JToolBar();
        BTnovocadastro = new javax.swing.JButton();
        BTalterarcadastro = new javax.swing.JButton();
        BTsalvarcadastro = new javax.swing.JButton();
        BTexcluircadastro = new javax.swing.JButton();
        BTexcluircadastro2 = new javax.swing.JButton();
        jScrollPane2 = new javax.swing.JScrollPane();
        TBbanco = new javax.swing.JTable();

        jTextField1.setText("jTextField1");

        jPanel5.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)), "Foto", javax.swing.border.TitledBorder.CENTER, javax.swing.border.TitledBorder.DEFAULT_POSITION));

        javax.swing.GroupLayout jPanel5Layout = new javax.swing.GroupLayout(jPanel5);
        jPanel5.setLayout(jPanel5Layout);
        jPanel5Layout.setHorizontalGroup(
            jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 127, Short.MAX_VALUE)
        );
        jPanel5Layout.setVerticalGroup(
            jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 140, Short.MAX_VALUE)
        );

        jTable1.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null}
            },
            new String [] {
                "Title 1", "Title 2", "Title 3", "Title 4"
            }
        ));
        jScrollPane1.setViewportView(jTable1);

        jToggleButton1.setText("jToggleButton1");

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setTitle("CADASTRO DE BANCOS");

        jPanel1.setBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.EtchedBorder.RAISED));

        jLabel1.setFont(new java.awt.Font("Yu Gothic", 1, 14)); // NOI18N
        jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Recurso/Dollar.png"))); // NOI18N
        jLabel1.setText("CADASTRO DE BANCOS");

        TFpesquisabanco.setToolTipText("Digite o Nome do Banco");

        BTpesquisarbanco.setFont(new java.awt.Font("Yu Gothic", 0, 12)); // NOI18N
        BTpesquisarbanco.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Recurso/Find.png"))); // NOI18N
        BTpesquisarbanco.setText("Pesquisar");
        BTpesquisarbanco.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                BTpesquisarbancoActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 252, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(TFpesquisabanco, javax.swing.GroupLayout.PREFERRED_SIZE, 164, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(BTpesquisarbanco)
                .addGap(18, 18, 18))
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addGap(4, 4, 4)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 44, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(TFpesquisabanco, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(BTpesquisarbanco, javax.swing.GroupLayout.PREFERRED_SIZE, 36, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        jLabel13.setFont(new java.awt.Font("Yu Gothic", 0, 12)); // NOI18N

        jTabbedPane1.setBackground(new java.awt.Color(255, 255, 255));

        jPanel3.setBackground(new java.awt.Color(255, 255, 255));
        jPanel3.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        TFnomebanco.setEditable(false);
        TFnomebanco.setToolTipText("Nome do Banco");

        jToolBar3.setBackground(new java.awt.Color(255, 255, 255));
        jToolBar3.setFloatable(false);
        jToolBar3.setRollover(true);

        jPanel7.setBackground(new java.awt.Color(255, 255, 255));
        jPanel7.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "STATUS", javax.swing.border.TitledBorder.LEFT, javax.swing.border.TitledBorder.TOP, new java.awt.Font("Yu Gothic", 1, 12))); // NOI18N

        JRBativobanco.setBackground(new java.awt.Color(255, 255, 255));
        JRBativobanco.setFont(new java.awt.Font("Yu Gothic", 1, 12)); // NOI18N
        JRBativobanco.setText("ATIVO");
        JRBativobanco.setToolTipText("Banco Ativo");
        JRBativobanco.setEnabled(false);
        JRBativobanco.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                JRBativobancoActionPerformed(evt);
            }
        });

        JRBinativobanco.setBackground(new java.awt.Color(255, 255, 255));
        JRBinativobanco.setFont(new java.awt.Font("Yu Gothic", 1, 12)); // NOI18N
        JRBinativobanco.setText("INATIVO");
        JRBinativobanco.setToolTipText("Banco Inativo");
        JRBinativobanco.setEnabled(false);
        JRBinativobanco.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                JRBinativobancoActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel7Layout = new javax.swing.GroupLayout(jPanel7);
        jPanel7.setLayout(jPanel7Layout);
        jPanel7Layout.setHorizontalGroup(
            jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel7Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(JRBativobanco)
                    .addComponent(JRBinativobanco))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        jPanel7Layout.setVerticalGroup(
            jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel7Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(JRBativobanco)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(JRBinativobanco)
                .addContainerGap(15, Short.MAX_VALUE))
        );

        jLabel7.setFont(new java.awt.Font("Yu Gothic", 1, 12)); // NOI18N
        jLabel7.setText("BANCO:");

        jLabel8.setFont(new java.awt.Font("Yu Gothic", 1, 12)); // NOI18N
        jLabel8.setText("AGÊNCIA:");

        TFagencia.setEditable(false);
        TFagencia.setToolTipText("Agência");

        jLabel9.setFont(new java.awt.Font("Yu Gothic", 1, 12)); // NOI18N
        jLabel9.setText("CONTA:");

        TFconta.setEditable(false);
        TFconta.setToolTipText("Conta");

        javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
        jPanel3.setLayout(jPanel3Layout);
        jPanel3Layout.setHorizontalGroup(
            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel3Layout.createSequentialGroup()
                .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel3Layout.createSequentialGroup()
                        .addGap(58, 58, 58)
                        .addComponent(jToolBar3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(jPanel3Layout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(jPanel7, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(18, 18, 18)
                        .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addGroup(jPanel3Layout.createSequentialGroup()
                                .addComponent(jLabel7)
                                .addGap(21, 21, 21)
                                .addComponent(TFnomebanco, javax.swing.GroupLayout.PREFERRED_SIZE, 235, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGroup(jPanel3Layout.createSequentialGroup()
                                .addComponent(jLabel8)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(TFagencia, javax.swing.GroupLayout.PREFERRED_SIZE, 75, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(jLabel9)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(TFconta)))))
                .addContainerGap(302, Short.MAX_VALUE))
        );
        jPanel3Layout.setVerticalGroup(
            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel3Layout.createSequentialGroup()
                .addComponent(jToolBar3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel3Layout.createSequentialGroup()
                        .addGap(14, 14, 14)
                        .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel7)
                            .addComponent(TFnomebanco, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel8)
                            .addComponent(TFagencia, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabel9)
                            .addComponent(TFconta, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                    .addComponent(jPanel7, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(0, 12, Short.MAX_VALUE))
        );

        jTabbedPane1.addTab("BANCOS", jPanel3);

        jToolBar1.setBorder(null);
        jToolBar1.setFloatable(false);
        jToolBar1.setRollover(true);

        BTnovocadastro.setFont(new java.awt.Font("Comic Sans MS", 1, 12)); // NOI18N
        BTnovocadastro.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Recurso/Add.png"))); // NOI18N
        BTnovocadastro.setText("Novo");
        BTnovocadastro.setFocusable(false);
        BTnovocadastro.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        BTnovocadastro.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        BTnovocadastro.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                BTnovocadastroActionPerformed(evt);
            }
        });
        jToolBar1.add(BTnovocadastro);

        BTalterarcadastro.setFont(new java.awt.Font("Comic Sans MS", 1, 12)); // NOI18N
        BTalterarcadastro.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Recurso/Modify.png"))); // NOI18N
        BTalterarcadastro.setText("Alterar");
        BTalterarcadastro.setEnabled(false);
        BTalterarcadastro.setFocusable(false);
        BTalterarcadastro.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        BTalterarcadastro.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        BTalterarcadastro.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                BTalterarcadastroActionPerformed(evt);
            }
        });
        jToolBar1.add(BTalterarcadastro);

        BTsalvarcadastro.setFont(new java.awt.Font("Comic Sans MS", 1, 12)); // NOI18N
        BTsalvarcadastro.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Recurso/Apply.png"))); // NOI18N
        BTsalvarcadastro.setText("Salvar");
        BTsalvarcadastro.setFocusable(false);
        BTsalvarcadastro.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        BTsalvarcadastro.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        BTsalvarcadastro.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                BTsalvarcadastroActionPerformed(evt);
            }
        });
        jToolBar1.add(BTsalvarcadastro);

        BTexcluircadastro.setFont(new java.awt.Font("Comic Sans MS", 1, 12)); // NOI18N
        BTexcluircadastro.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Recurso/Erase.png"))); // NOI18N
        BTexcluircadastro.setText("Excluir");
        BTexcluircadastro.setFocusable(false);
        BTexcluircadastro.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        BTexcluircadastro.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        BTexcluircadastro.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                BTexcluircadastroActionPerformed(evt);
            }
        });
        jToolBar1.add(BTexcluircadastro);

        BTexcluircadastro2.setFont(new java.awt.Font("Comic Sans MS", 1, 12)); // NOI18N
        BTexcluircadastro2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Recurso/No.png"))); // NOI18N
        BTexcluircadastro2.setText("Cancelar");
        BTexcluircadastro2.setFocusable(false);
        BTexcluircadastro2.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        BTexcluircadastro2.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        BTexcluircadastro2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                BTexcluircadastro2ActionPerformed(evt);
            }
        });
        jToolBar1.add(BTexcluircadastro2);

        TBbanco.setFont(new java.awt.Font("Yu Gothic", 0, 12)); // NOI18N
        TBbanco.setModel(tmBancos);
        TBbanco.setToolTipText("Bancos");
        TBbanco.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        lsmBancos = TBbanco.getSelectionModel();
        lsmBancos.addListSelectionListener(new ListSelectionListener(){
            public void valueChanged(ListSelectionEvent e){
                if(!e.getValueIsAdjusting()){
                    tbBancosLinhaSelecionada(TBbanco);
                }
            }
        });
        jScrollPane2.setViewportView(TBbanco);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 740, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(0, 11, Short.MAX_VALUE))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                        .addGap(0, 0, Short.MAX_VALUE)
                        .addComponent(jLabel13)
                        .addGap(152, 152, 152))))
            .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(jTabbedPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 740, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(layout.createSequentialGroup()
                        .addGap(236, 236, 236)
                        .addComponent(jToolBar1, javax.swing.GroupLayout.PREFERRED_SIZE, 251, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addGap(0, 0, Short.MAX_VALUE))
            .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, 57, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 90, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(jTabbedPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 159, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 9, Short.MAX_VALUE)
                .addComponent(jLabel13)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jToolBar1, javax.swing.GroupLayout.PREFERRED_SIZE, 62, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );

        setSize(new java.awt.Dimension(777, 457));
        setLocationRelativeTo(null);
    }// </editor-fold>//GEN-END:initComponents

    private void BTnovocadastroActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_BTnovocadastroActionPerformed
tipoCadastro = "Novo";
novoBanco();
JRBativobanco.setSelected(true);
    }//GEN-LAST:event_BTnovocadastroActionPerformed

    private void BTalterarcadastroActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_BTalterarcadastroActionPerformed
 tipoCadastro = "alteracao";
 BTsalvarcadastro.setEnabled(true);
habilitarCampos();         // TODO add your handling code here:
    }//GEN-LAST:event_BTalterarcadastroActionPerformed

    private void BTpesquisarbancoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_BTpesquisarbancoActionPerformed
listarBancos();
limparCampos();
novoBanco();
desabilitarCampos();

      
    }//GEN-LAST:event_BTpesquisarbancoActionPerformed

    private void BTsalvarcadastroActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_BTsalvarcadastroActionPerformed
if(tipoCadastro.equals("Novo")){
        cadastraBanco();
        
    }else if (tipoCadastro.equals("alteracao")){
        alteraBanco();
       
    }
        
        System.out.println(tipoCadastro);
                              // TODO add your handling code here:
    }//GEN-LAST:event_BTsalvarcadastroActionPerformed

    private void BTexcluircadastroActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_BTexcluircadastroActionPerformed
excluirBanco();        // TODO add your handling code here:
    }//GEN-LAST:event_BTexcluircadastroActionPerformed

    private void BTexcluircadastro2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_BTexcluircadastro2ActionPerformed
novoBanco();
desabilitarCampos();
BTalterarcadastro.setEnabled(true);
BTnovocadastro.setEnabled(true);
JRBativobanco.setSelected(false);        // TODO add your handling code here:
    }//GEN-LAST:event_BTexcluircadastro2ActionPerformed

    private void JRBativobancoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_JRBativobancoActionPerformed
if(JRBativobanco.isSelected()){
JRBinativobanco.setSelected(false);         // TODO add your handling code here:
    }//GEN-LAST:event_JRBativobancoActionPerformed
    }
    private void JRBinativobancoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_JRBinativobancoActionPerformed
if(JRBinativobanco.isSelected()){
JRBativobanco.setSelected(false);        // TODO add your handling code here:
    }//GEN-LAST:event_JRBinativobancoActionPerformed
    }
  /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(TelaCadastroBanco.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(TelaCadastroBanco.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(TelaCadastroBanco.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(TelaCadastroBanco.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new TelaCadastroBanco().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton BTalterarcadastro;
    private javax.swing.JButton BTexcluircadastro;
    private javax.swing.JButton BTexcluircadastro2;
    private javax.swing.JButton BTnovocadastro;
    private javax.swing.JButton BTpesquisarbanco;
    private javax.swing.JButton BTsalvarcadastro;
    private javax.swing.JRadioButton JRBativobanco;
    private javax.swing.JRadioButton JRBinativobanco;
    private javax.swing.JTable TBbanco;
    private javax.swing.JTextField TFagencia;
    private javax.swing.JTextField TFconta;
    private javax.swing.JTextField TFnomebanco;
    private javax.swing.JTextField TFpesquisabanco;
    private javax.swing.ButtonGroup buttonGroup1;
    private javax.swing.ButtonGroup buttonGroup2;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel13;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JLabel jLabel8;
    private javax.swing.JLabel jLabel9;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JPanel jPanel5;
    private javax.swing.JPanel jPanel7;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JTabbedPane jTabbedPane1;
    private javax.swing.JTable jTable1;
    private javax.swing.JTextField jTextField1;
    private javax.swing.JToggleButton jToggleButton1;
    private javax.swing.JToolBar jToolBar1;
    private javax.swing.JToolBar jToolBar3;
    // End of variables declaration//GEN-END:variables

    private void s(List<BancoBean> Bancos) {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }
}
